#ifndef TL_STRING_H
#define TL_STRING_H

#include <wchar.h>

#define TL_STRING_DEFAULT_FIXED_SIZE 64
#define TL_STRING_PATH_SEPARATOR L"/"

#ifdef JMBC_INSIDE

typedef struct
{
	wchar_t *data;
	unsigned int length;
} TLString;

#endif

// Context

void
tlStringCreateContext(void);

// Generation / Deletion
void
tlGenStrings(unsigned int n, unsigned int *strings);

void
tlDeleteStrings(unsigned int n, unsigned int *strings);

// Load / Unload

void
tlStringLoad(unsigned int id, const wchar_t *string);

void
tlStringUnload(unsigned int id);

void
tlStringsUnload(unsigned int n, unsigned int *strings);

// Query

const wchar_t *
tlStringData(unsigned int id);

unsigned int 
tlStringLength(unsigned int id);

// Operation

void
tlStringConcat(unsigned int id, unsigned int n, unsigned int *strings);

//void
//tlStringConcat2(unsigned int id, unsigned int a, unsigned int b);

void
tlStringConcatPath(unsigned int id, unsigned int n, unsigned int *strings);

//void
//tlStringConcatPath2(unsigned int id, unsigned int a, unsigned int b);

void
tlStringLoadC(unsigned int id, const char *data);

#endif
